<html>
	<head>
		<meta charset="utf-8"></meta>
		<title>BHingeRestraint</title>
		<link href="./style.css" rel="stylesheet" type="text/css"/>
	</head>
	<body>
		<div class="class" name="BHingeRestraint">
			<h1>BHingeRestraint</h1>
			<p>继承自<a href="BRestraint.html">BRestraint</a></p>
			<p id="resume">BHingeRestraint是铰链约束，使用两个物体在围绕同一轴进行转动。<a href="#desc">详细</a></p>
			<h2>public</h2>
			<table id="public">
				<tr><td align="right"/><td><a href="#BHingeRestraint()">BHingeRestraint</a>();</td></tr>
				<tr><td align="right"/><td><a href="#BHingeRestraint(const BString&)">BHingeRestraint</a>(const BString& name);</td></tr>
				<tr><td align="right"/><td><a href="#BHingeRestraint(BBody*, BBody*)">BHingeRestraint</a>(BBody* bodyA, BBody* bodyB);</td></tr>
				<tr><td align="right"/><td><a href="#BHingeRestraint(BBody*, const BVector&)">BHingeRestraint</a>(BBody* bodyA, const BVector& pivotA);</td></tr>
				<tr><td align="right"/><td><a href="#BHingeRestraint(BBody*, const BVector&, BBody*, const BVector&)">BHingeRestraint</a>(BBody* bodyA, const BVector& pivotA, BBody* bodyB, const BVector& pivotB);</td></tr>
				<tr><td align="right"/><td><a href="#~BHingeRestraint()">~BHingeRestraint</a>();</td></tr>
				<tr><td align="right">virtual void </td><td><a href="#copy(const BRestraint*)">copy</a>(const BRestraint* other);</td></tr>
				<tr><td align="right">virtual BRestraint* </td><td><a href="#clone()">clone</a>() const;</td></tr>
				<tr><td align="right">bool </td><td><a href="#setAxisA(BReal, BReal, BReal)">setAxisA</a>(BReal ax, BReal ay, BReal az);</td></tr>
				<tr><td align="right">bool </td><td><a href="#setAxisA(const BVector&)">setAxisA</a>(const BVector& axisA);</td></tr>
				<tr><td align="right">const BVector&amp; </td><td><a href="#axisA()">axisA</a>() const;</td></tr>
				<tr><td align="right">bool </td><td><a href="#setAxisB(BReal, BReal, BReal)">setAxisB</a>(BReal ax, BReal ay, BReal az);</td></tr>
				<tr><td align="right">bool </td><td><a href="#setAxisB(const BVector&)">setAxisB</a>(const BVector& axisB);</td></tr>
				<tr><td align="right">const BVector&amp; </td><td><a href="#axisB()">axisB</a>() const;</td></tr>
				<tr><td align="right">void </td><td><a href="#setLimitFactor(BReal)">setLimitFactor</a>(BReal limitFactor);</td></tr>
				<tr><td align="right">BReal </td><td><a href="#limitFactor()">limitFactor</a>() const;</td></tr>
				<tr><td align="right">void </td><td><a href="#setAngularLimit(const BRealRange&)">setAngularLimit</a>(const BRealRange& angularLimit);</td></tr>
				<tr><td align="right">const BRealRange&amp; </td><td><a href="#angularLimit()">angularLimit</a>() const;</td></tr>
				<tr><td align="right">void </td><td><a href="#setMotorEnabled(bool)">setMotorEnabled</a>(bool motorEnabled);</td></tr>
				<tr><td align="right">bool </td><td><a href="#motorEnabled()">motorEnabled</a>() const;</td></tr>
				<tr><td align="right">void </td><td><a href="#setMotorTarget(BReal)">setMotorTarget</a>(BReal motorTarget);</td></tr>
				<tr><td align="right">BReal </td><td><a href="#motorTarget()">motorTarget</a>() const;</td></tr>
				<tr><td align="right">void </td><td><a href="#setMotorVelocity(BReal)">setMotorVelocity</a>(BReal motorVelocity);</td></tr>
				<tr><td align="right">BReal </td><td><a href="#motorVelocity()">motorVelocity</a>() const;</td></tr>
				<tr><td align="right">void </td><td><a href="#setMotorMaxForce(BReal)">setMotorMaxForce</a>(BReal motorMaxForce);</td></tr>
				<tr><td align="right">BReal </td><td><a href="#motorMaxForce()">motorMaxForce</a>() const;</td></tr>
				<tr><td align="right">BVector </td><td><a href="#horAxis()">horAxis</a>() const;</td></tr>
				<tr><td align="right">BVector </td><td><a href="#verAxis()">verAxis</a>() const;</td></tr>
				<tr><td align="right">BVector </td><td><a href="#swingAxis()">swingAxis</a>() const;</td></tr>
				<tr><td align="right">BReal </td><td><a href="#hingeAngle()">hingeAngle</a>() const;</td></tr>
				<tr><td align="right">virtual int </td><td><a href="#solverSize()">solverSize</a>();</td></tr>
				<tr><td align="right">virtual void </td><td><a href="#soverItems(BSolverItem*, BReal)">soverItems</a>(BSolverItem* solverItems, BReal stepTime);</td></tr>
			</table>
			<div id="desc">
				<h2>详细介绍：</h2><p>BHingeRestraint是铰链约束，使用两个物体在围绕同一轴进行转动。</p><p>马达功能开启后，可以让两物体以指定的速度进行转动，每次给定目标位置时其到达状态为否，并进行速度值符号指示的方向进行运动。当运动角度值到达目标位置时其到达状态为是（true）此状态上会锁定目标位置，不再关心要求的速度方向。</p><p>若要使用马达驱动物体不停地旋转，则需要指定无法到达的目标值即可。如小于负2PI或者大于正2PI。</p><p>到达状态会在启动或停止时被重置，也会在改变目标位置时被重置。</p>
			</div>
			<h2 id="docs">成员文档：</h2>
			<div id="BHingeRestraint()">
				<h3>BHingeRestraint();</h3>
			</div>
			<div id="BHingeRestraint(const BString&)">
				<h3>BHingeRestraint(const BString&amp; name);</h3>
			</div>
			<div id="BHingeRestraint(BBody*, BBody*)">
				<h3>BHingeRestraint(BBody* bodyA, BBody* bodyB);</h3>
			</div>
			<div id="BHingeRestraint(BBody*, const BVector&)">
				<h3>BHingeRestraint(BBody* bodyA, const BVector&amp; pivotA);</h3>
			</div>
			<div id="BHingeRestraint(BBody*, const BVector&, BBody*, const BVector&)">
				<h3>BHingeRestraint(BBody* bodyA, const BVector&amp; pivotA, BBody* bodyB, const BVector&amp; pivotB);</h3>
			</div>
			<div id="~BHingeRestraint()">
				<h3>~BHingeRestraint();</h3>
			</div>
			<div id="copy(const BRestraint*)">
				<h3>virtual void copy(const BRestraint* other);</h3>
			</div>
			<div id="clone()">
				<h3>virtual BRestraint* clone() const;</h3>
			</div>
			<div id="setAxisA(BReal, BReal, BReal)">
				<h3>bool setAxisA(BReal ax, BReal ay, BReal az);</h3>
			</div>
			<div id="setAxisA(const BVector&)">
				<h3>bool setAxisA(const BVector&amp; axisA);</h3>
			</div>
			<div id="axisA()">
				<h3>const BVector&amp; axisA() const;</h3>
			</div>
			<div id="setAxisB(BReal, BReal, BReal)">
				<h3>bool setAxisB(BReal ax, BReal ay, BReal az);</h3>
			</div>
			<div id="setAxisB(const BVector&)">
				<h3>bool setAxisB(const BVector&amp; axisB);</h3>
			</div>
			<div id="axisB()">
				<h3>const BVector&amp; axisB() const;</h3>
			</div>
			<div id="setLimitFactor(BReal)">
				<h3>void setLimitFactor(BReal limitFactor);</h3>
			</div>
			<div id="limitFactor()">
				<h3>BReal limitFactor() const;</h3>
			</div>
			<div id="setAngularLimit(const BRealRange&)">
				<h3>void setAngularLimit(const BRealRange&amp; angularLimit);</h3>
			</div>
			<div id="angularLimit()">
				<h3>const BRealRange&amp; angularLimit() const;</h3>
			</div>
			<div id="setMotorEnabled(bool)">
				<h3>void setMotorEnabled(bool motorEnabled);</h3>
			</div>
			<div id="motorEnabled()">
				<h3>bool motorEnabled() const;</h3>
			</div>
			<div id="setMotorTarget(BReal)">
				<h3>void setMotorTarget(BReal motorTarget);</h3>
			</div>
			<div id="motorTarget()">
				<h3>BReal motorTarget() const;</h3>
			</div>
			<div id="setMotorVelocity(BReal)">
				<h3>void setMotorVelocity(BReal motorVelocity);</h3>
			</div>
			<div id="motorVelocity()">
				<h3>BReal motorVelocity() const;</h3>
			</div>
			<div id="setMotorMaxForce(BReal)">
				<h3>void setMotorMaxForce(BReal motorMaxForce);</h3>
			</div>
			<div id="motorMaxForce()">
				<h3>BReal motorMaxForce() const;</h3>
			</div>
			<div id="horAxis()">
				<h3>BVector horAxis() const;</h3>
			</div>
			<div id="verAxis()">
				<h3>BVector verAxis() const;</h3>
			</div>
			<div id="swingAxis()">
				<h3>BVector swingAxis() const;</h3>
			</div>
			<div id="hingeAngle()">
				<h3>BReal hingeAngle() const;</h3>
			</div>
			<div id="solverSize()">
				<h3>virtual int solverSize();</h3>
			</div>
			<div id="soverItems(BSolverItem*, BReal)">
				<h3>virtual void soverItems(BSolverItem* solverItems, BReal stepTime);</h3>
			</div>
		</div>
	</body>
</html>